<?php
/**
 * Core_Validate_EmailExist
 * 
 * @author naspeh
 * @version $Id: EmailExist.php 659 2008-06-15 11:34:26Z naspeh $
 */
class Core_Validate_EmailExist extends Zend_Validate_Abstract
{
    const IS_EXIST = 'isEmailExist';
    /**
     * Шаблоны сообщений
     *
     * @var array
     */      
    protected $_messageTemplates = array(self::IS_EXIST => 'Пользователь с таким email уже существует');
    /**
     * Флаг проверки на совпадение со старым email
     *
     * @var boolean
     */
    protected $_withCheckOld = false;
    /**
     * Конструктор
     *
     * @param boolean $withCheckOld
     */
    public function __construct($withCheckOld = false)
    {
        $this->_withCheckOld = (boolean) $withCheckOld;
    }
    /**
     * Возвращает флаг существования email пользователя
     *
     * @param string $value
     * @return boolean
     */     
    public function isValid ($value)
    {
        $value = (string) $value;
        $tableRoles = new Core_Table_Roles();
        if ($this->_withCheckOld && $value == Core_Auth::get('email')) {
        	return true;
        } elseif ($tableRoles->fetchRow(array('email = ?' => $value))){
            $this->_error(self::IS_EXIST);
            return false;
        }
        return true;
    }
}